# 响应结果
# @ResponseBody
用于将 Controller 的方法返回的对象,通过 HttpMessageConverter 接口转换为指定格式的数据如:json,xml 等,通过 Response 响应给客户端。如果需要SpringMVC支持JSON,必须加入JSON的处理jar包:如Jackson,SpringBoot默认配置。
@RequestMapping("/testJson")
@ResponseBody
public Address testJson(@RequestBody Address address) {
System.out.println(address);
address.setAddressName("上海");
return address;
}
$(function(){
// 绑定点击事件
$("#btn").click(function(){
$.ajax({
url:"user/testJson",
type:"post",
contentType:"application/json;charset=UTF-8",
data:'{"addressName":"哈哈","addressNum":100}',
success:function(data){
alert(data);
alert(data.addressName);
}
dataType:"json",
});
});
});
# ModelAndView...
ModelAndView是 SpringMVC 为我们提供的一个类,其对象也可以用作控制器方法的返回值。 两个方法:@RequestMapping("/testReturnModelAndView") public ModelAndView testReturnModelAndView() { ModelAndView mv = new ModelAndView(); mv.addObject("username", "张三"); //存储的request域中 mv.setViewName("success"); return mv; }Model/ModelMap除了
ModelAndView以外,还可以使用Model(接口)来向页面传递数据,在参数里直接声明Model即可使用Model可以不使用ModelAndView对象,Model对象可以向页面传递数据,View对象可以使用String返回值替代。其本质都是使用Request域对象传递数据
model.addAttribute("item", item); return "itemEdit";ModelMap是Model接口的实现类,也可以通过ModelMap向页面传递数据。效果一样,同上代码
# String—无@ResponseBody
Controller 中方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。SpringBoot 默认查找 template 目录。
forward:转发return "forward:success";也可以添加后缀如htmlredirect:重定向return "redirect:fail";
# void & ajax
在Controller方法形参上可以绑定原生ServletAPI,使用request或response指定响应结果。
//使用request请求转发页面 request.getRequestDispatcher("页面路径").forward(request, response); //通过response页面重定向 response.sendRedirect("url") //通过response指定响应结果,例如响应json数据如下 response.setCharacterEncoding("utf-8"); response.setContentType("application/json;charset=utf-8"); response.getWriter().write("{\"abc\":123}");
← 路由&请求参数绑定 Interceptor →